package org.itboys.fuzion.mysql.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.itboys.fuzion.mysql.orm.FuziongMemberStatistics;
/**
 * 大乱斗会员的重要信息的总记录
 * @author weisky
 *
 * 2016年4月19日
 */
public interface
FuziongMemberStatisticsMapper {
	
    int delete(Long id);

    int insert(FuziongMemberStatistics record);

    FuziongMemberStatistics getById(Long id);

    int update(FuziongMemberStatistics record);

    void batchUpdate(List<FuziongMemberStatistics> list);
    
    /**
     * 根据会员ID 获取信息
     * @param memberId
     * @return
     */
    FuziongMemberStatistics getByMemberId(Long memberId);

    /**
     * 通过memberId 修改统计值
     * @param record
     * @return
     */
    int updateByMemberId(FuziongMemberStatistics record);

    /**
     * 根据卖家id 获取信息
     * @param sellerId
     * @return
     */
    FuziongMemberStatistics getBySellerId(Long sellerId);
    
    /**
     * 获取店铺收益
     * @param sellerId
     * @return
     */
    FuziongMemberStatistics getSellerIncome(Long sellerId);
    
    /**
     * 根据积分等级  获取这个积分等级下的会员列表
     * @return
     */
    List<Long> getMemberIdListByScoreId(@Param("scoreId") Long scoreId, @Param("sellerId") Long sellerId);
    /**
     * 根据积分等级  获取这个积分等级下的会员列表
     * @return
     */
    List<FuziongMemberStatistics> getMemberIdListByScoreId2(@Param("scoreId") Long scoreId, @Param("sellerId") Long sellerId);

    /**
     * 获取所有的会员记录
     * @return
     */
    List<FuziongMemberStatistics> getMemberStatistics();

    /**
     * 获取所有的店铺记录
     * @return
     */
    List<FuziongMemberStatistics> getSellerStatistics();

    /**
     * 获取店铺下的会员记录
     * @param sellerId
     * @return
     */
    List<FuziongMemberStatistics> getMemberStatisticsBySellerId(@Param("sellerId")Long sellerId);

    /**
     * 统计店铺的提现总额
     * @param sellerId
     * @return
     */
    Long getSellerWithdrawTotalMoney(Long sellerId);

    /**
     * 根据param参数  统计人数
     * @return
     */
    Integer getMemberBuyType(Map<String,Object> param);

    /**
     * 修改各种收益
     * @param fuziongMemberStatistics
     */
    void updateStatistics(FuziongMemberStatistics fuziongMemberStatistics);
    
}